Mirror the behavior of gtk_widget_queue_resize() and always queue a
redraw. If we ever want to cause allocates without redraws we can add
gtk_widget_queue_allocate_no_redraw() then.
I had initially assumed gtk_widget_size_allocate() would take care of
queueing redraws, but it does not do that when neither size nor position
change. And that is obviously what's happening after
gtk_widget_queue_allocate().
Fixes buttons sometimes not redrawing (the record button in
widget-factory after locking it, all buttons when switching to the dark
theme).
{
g_return_if_fail (GTK_IS_WIDGET (widget));
+ if (_gtk_widget_get_realized (widget))
+ gtk_widget_queue_draw (widget);
+
gtk_widget_set_alloc_needed (widget);
}